
<?php
class Funcao_Model extends Model
{
	private $funcao;
	private $instituicao;
	private $cod_pessoa;
	private $cod_trabalho;
	private $titulo;
	private $pessoa;
	private $sqlInsert = "INSERT INTO funcao (funcao,instituicao,cod_pessoa,cod_trabalho)
						  VALUES ('%s','%s','%s','%s')";
						  
	private $sqlDelete = "DELETE FROM funcao WHERE cod_pessoa='%s' AND cod_trabalho='%s'";
	
	private $sqlUpdate = "UPDATE funcao SET funcao='%s',instituicao='%s',cod_pessoa='%s',cod_trabalho='%s'
						  WHERE cod_pessoa='%s' AND cod_trabalho='%s'";
						  
	private $sqlSelectPessoa = "SELECT pessoa.nome_pessoa,funcao.cod_pessoa FROM funcao
							   INNER JOIN pessoa ON funcao.cod_pessoa=pessoa.cod_pessoa GROUP BY nome_pessoa";
							   
	private $sqlSelectTrabalho = "SELECT trabalho.titulo,funcao.cod_trabalho FROM funcao
							   INNER JOIN trabalho ON funcao.cod_trabalho=trabalho.cod_trabalho GROUP BY titulo";
							   						
	private $sqlSelectInner = "SELECT pessoa.nome_pessoa,trabalho.titulo,funcao.* FROM funcao
							   INNER JOIN pessoa ON funcao.cod_pessoa=pessoa.cod_pessoa	 
							   INNER JOIN trabalho ON funcao.cod_trabalho=trabalho.cod_trabalho %s %s";
	
	public function setFuncao($funcao)
	{
		$this->funcao = trim(strip_tags(mysql_real_escape_string($funcao)));
	}
	
	public function setInstituicao($instituicao)
	{
		$this->instituicao = trim(strip_tags(mysql_real_escape_string($instituicao)));
	}
	
	public function setCodPessoa($codPessoa)
	{
		$this->cod_pessoa = trim(strip_tags(mysql_real_escape_string($codPessoa)));
	}
	
	public function setCodTrabalho($codTrabalho)
	{
		$this->cod_trabalho = trim(strip_tags(mysql_real_escape_string($codTrabalho)));
	}
	
	public function setTitulo($titulo)
	{
		$this->titulo = trim(strip_tags(mysql_real_escape_string($titulo)));
	}
	
	public function setPessoa($pessoa)
	{
		$this->pessoa = trim(strip_tags(mysql_real_escape_string($pessoa)));
	}
	
	public function getFuncao()
	{
		return $this->funcao;	
	}
	
	public function getInstituicao()
	{
		return $this->instituicao;	
	}
	
	public function getCodPessoa()
	{
		return $this->cod_pessoa;	
	}
	
	public function getCodTrabalho()
	{
		return $this->cod_trabalho;	
	}
	
	public function getTitulo()
	{
		return $this->titulo;	
	}
	
	public function getPessoa()
	{
		return $this->pessoa;	
	}
	
	public function insert()
	{
		$sql = sprintf($this->sqlInsert,$this->getFuncao(),$this->getInstituicao(),
			   $this->getCodPessoa(),$this->getCodTrabalho());   
		return $this->runQuery($sql);					
	}
	
	public function delete()
	{
		$sql = sprintf($this->sqlDelete,$this->getCodPessoa(),$this->getCodTrabalho());
		return $this->runQuery($sql);
	}
	
	public function update($codPessoa,$codTrabalho)
	{
		$sql = sprintf($this->sqlUpdate,$this->getFuncao(),$this->getInstituicao(),
			   $this->getCodPessoa(),$this->getCodTrabalho(),$codPessoa,$codTrabalho);  
		return $this->runQuery($sql);
	}
	
	public function selectInner($where='',$order='')
	{
		$sql = sprintf($this->sqlSelectInner,$where,$order);
		return $this->runSelect($sql);
	}
	
	public function selectPessoa()
	{
		$sql = $this->sqlSelectPessoa;
		return $this->runSelect($sql);
	}
	
	public function selectTrabalho()
	{
		$sql = $this->sqlSelectTrabalho;
		return $this->runSelect($sql);
	}
	
	public function load()
	{
		$where = sprintf("AND funcao.cod_pessoa='%s' AND funcao.cod_trabalho='%s'",
				 $this->getCodPessoa(),$this->getCodTrabalho());
		$row = $this->selectInner($where);
		$this->setFuncao($row[0]['funcao']);
		$this->setInstituicao($row[0]['instituicao']);
		$this->setCodPessoa($row[0]['cod_pessoa']);
		$this->setCodTrabalho($row[0]['cod_trabalho']);
		$this->setTitulo($row[0]['titulo']);
		$this->setPessoa($row[0]['nome_pessoa']);
		return $this;
	}
}
?>